home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / dev / gui / BGUI11c.lha / include / libraries / bgui.h < prev    next >
C/C++ Source or Header  |  1995-04-15  |  51KB  |  1,228 lines

  1. #ifndef LIBRARIES_BGUI_H
  2. #define LIBRARIES_BGUI_H
  3. /*
  4. **      $VER: libraries/bgui.h 38.13 (15.4.95)
  5. **      C header for the bgui.library.
  6. **
  7. **      bgui.library structures and constants.
  8. **
  9. **      (C) Copyright 1993-1995 Jaba Development.
  10. **      (C) Copyright 1993-1995 Jan van den Baard.
  11. **      All Rights Reserved.
  12. **/
  13.  
  14. #ifndef EXEC_TYPES_H
  15. #include <exec/types.h>
  16. #endif /* EXEC_TYPES_H */
  17.  
  18. #ifndef INTUITION_CLASSES_H
  19. #include <intuition/classes.h>
  20. #endif /* INTUITION_CLASSES_H */
  21.  
  22. #ifndef INTUITION_CLASSUSR_H
  23. #include <intuition/classusr.h>
  24. #endif /* INTUITION_CLASSUSR_H */
  25.  
  26. #ifndef INTUITION_IMAGECLASS_H
  27. #include <intuition/imageclass.h>
  28. #endif /* INTUITION_IMAGECLASS_H */
  29.  
  30. #ifndef INTUITION_GADGETCLASS_H
  31. #include <intuition/gadgetclass.h>
  32. #endif /* INTUITION_GADGETCLASS_H */
  33.  
  34. #ifndef INTUITION_CGHOOKS_H
  35. #include <intuition/cghooks.h>
  36. #endif /* INTUITION_CGHOOKS_H */
  37.  
  38. #ifndef LIBRARIES_COMMODITIES_H
  39. #include <libraries/commodities.h>
  40. #endif /* LIBRARIES_COMMODITIES_H */
  41.  
  42. #ifndef LIBRARIES_GADTOOLS_H
  43. #include <libraries/gadtools.h>
  44. #endif /* LIBRARIES_GADTOOLS_H */
  45.  
  46. /*****************************************************************************
  47.  *
  48.  *      The attribute definitions in this header are all followed by
  49.  *      a small comment. This comment can contain the following things:
  50.  *
  51.  *      I        - Attribute can be set with OM_NEW
  52.  *      S        - Attribute can be set with OM_SET
  53.  *      G        - Attribute can be read with OM_GET
  54.  *      N        - Setting this attribute triggers a notification.
  55.  *      U        - Attribute can be set with OM_UPDATE.
  56.  *      PRIVATE! - Like it says: Private. Do not use this attribute.
  57.  */
  58.  
  59. /*****************************************************************************
  60.  *
  61.  *      Miscellanious library definitions.
  62.  */
  63. #define BGUINAME                        "bgui.library"
  64. #define BGUIVERSION                     37
  65.  
  66. /*****************************************************************************
  67.  *
  68.  *      BGUI_GetClassPtr() and BGUI_NewObjectA() class ID's.
  69.  */
  70. #define BGUI_LABEL_IMAGE                (0L)
  71. #define BGUI_FRAME_IMAGE                (1L)
  72. #define BGUI_VECTOR_IMAGE               (2L)
  73. /* 3 through 10 reserved. */
  74. #define BGUI_BASE_GADGET                (11L)
  75. #define BGUI_GROUP_GADGET               (12L)
  76. #define BGUI_BUTTON_GADGET              (13L)
  77. #define BGUI_CYCLE_GADGET               (14L)
  78. #define BGUI_CHECKBOX_GADGET            (15L)
  79. #define BGUI_INFO_GADGET                (16L)
  80. #define BGUI_STRING_GADGET              (17L)
  81. #define BGUI_PROP_GADGET                (18L)
  82. #define BGUI_INDICATOR_GADGET           (19L)
  83.  
  84. /* 20 is reserved. */
  85.  
  86. #define BGUI_PROGRESS_GADGET            (21L)
  87. #define BGUI_SLIDER_GADGET              (22L)
  88. #define BGUI_LISTVIEW_GADGET            (23L)
  89. #define BGUI_MX_GADGET                  (24L)
  90. #define BGUI_PAGE_GADGET                (25L)
  91. #define BGUI_EXTERNAL_GADGET            (26L)
  92. #define BGUI_SEPERATOR_GADGET           (27L)
  93.  
  94. /* 27 through 39 reserved. */
  95. #define BGUI_WINDOW_OBJECT              (40L)
  96. #define BGUI_FILEREQ_OBJECT             (41L)
  97. #define BGUI_COMMODITY_OBJECT           (42L)
  98.  
  99. /* Typo */
  100. #define BGUI_SEPARATOR_GADGET           BGUI_SEPERATOR_GADGET
  101.  
  102. /*****************************************************************************
  103.  *
  104.  *      BGUI requester definitions.
  105.  */
  106. struct bguiRequest {
  107.         ULONG            br_Flags;              /* See below.               */
  108.         STRPTR           br_Title;              /* Requester title.         */
  109.         STRPTR           br_GadgetFormat;       /* Gadget labels.           */
  110.         STRPTR           br_TextFormat;         /* Body text format.        */
  111.         UWORD            br_ReqPos;             /* Requester position.      */
  112.         struct TextAttr *br_TextAttr;           /* Requester font.          */
  113.         UBYTE            br_Underscore;         /* Underscore indicator.    */
  114.         UBYTE            br_Reserved0[ 3 ];     /* Set to 0!                */
  115.         struct Screen   *br_Screen;             /* Optional screen pointer. */
  116.         ULONG            br_Reserved1[ 4 ];     /* Set to 0!                */
  117. };
  118.  
  119. #define BREQF_CENTERWINDOW      (1<<0) /* Center requester on the window.   */
  120. #define BREQF_LOCKWINDOW        (1<<1) /* Lock the parent window.           */
  121. #define BREQF_NO_PATTERN        (1<<2) /* Don't use back-fill pattern.      */
  122. #define BREQF_XEN_BUTTONS       (1<<3) /* Use XEN style buttons.            */
  123. #define BREQF_AUTO_ASPECT       (1<<4) /* Aspect-ratio dependant look.      */
  124.  
  125. /*****************************************************************************
  126.  *
  127.  *      Tag and method bases.
  128.  */
  129. #define BGUI_TB                         (TAG_USER+0xF0000)
  130. #define BGUI_MB                         (0xF0000)
  131.  
  132. /*****************************************************************************
  133.  *
  134.  *      "frameclass" - BOOPSI framing image.
  135.  */
  136. #define FRM_Type                        (BGUI_TB+1)     /* ISG-- */
  137. #define FRM_CustomHook                  (BGUI_TB+2)     /* ISG-- */
  138. #define FRM_BackFillHook                (BGUI_TB+3)     /* ISG-- */
  139. #define FRM_Title                       (BGUI_TB+4)     /* ISG-- */
  140. #define FRM_TextAttr                    (BGUI_TB+5)     /* ISG-- */
  141. #define FRM_Flags                       (BGUI_TB+6)     /* ISG-- */
  142. #define FRM_FrameWidth                  (BGUI_TB+7)     /* --G-- */
  143. #define FRM_FrameHeight                 (BGUI_TB+8)     /* --G-- */
  144. #define FRM_BackFill                    (BGUI_TB+9)     /* ISG-- */
  145. #define FRM_EdgesOnly                   (BGUI_TB+10)    /* ISG-- */
  146. #define FRM_Recessed                    (BGUI_TB+11)    /* ISG-- */
  147. #define FRM_CenterTitle                 (BGUI_TB+12)    /* ISG-- */
  148. #define FRM_HighlightTitle              (BGUI_TB+13)    /* ISG-- */
  149. #define FRM_ThinFrame                   (BGUI_TB+14)    /* ISG-- */
  150.  
  151. /* BGUI_TB+15 through BGUI_TB+80 reserved */
  152.  
  153. /* Back fill types */
  154. #define STANDARD_FILL                   (0L)
  155. #define SHINE_RASTER                    (1L)
  156. #define SHADOW_RASTER                   (2L)
  157. #define SHINE_SHADOW_RASTER             (3L)
  158. #define FILL_RASTER                     (4L)
  159. #define SHINE_FILL_RASTER               (5L)
  160. #define SHADOW_FILL_RASTER              (6L)
  161. #define SHINE_BLOCK                     (7L)
  162. #define SHADOW_BLOCK                    (8L)
  163.  
  164. /* Flags */
  165. #define FRF_EDGES_ONLY          (1<<0)
  166. #define FRF_RECESSED            (1<<1)
  167. #define FRF_CENTER_TITLE        (1<<2)
  168. #define FRF_HIGHLIGHT_TITLE     (1<<3)
  169. #define FRF_THIN_FRAME          (1<<4)
  170.  
  171. /* Frame types */
  172. #define FRTYPE_CUSTOM           (0L)
  173. #define FRTYPE_BUTTON           (1L)
  174. #define FRTYPE_RIDGE            (2L)
  175. #define FRTYPE_DROPBOX          (3L)
  176. #define FRTYPE_NEXT             (4L)
  177. #define FRTYPE_RADIOBUTTON      (5L)
  178. #define FRTYPE_XEN_BUTTON       (6L)
  179.  
  180. /*
  181.  *      FRM_RENDER:
  182.  *
  183.  *      The message packet sent to both the FRM_CustomHook
  184.  *      and FRM_BackFillHook routines. Note that this
  185.  *      structure is READ-ONLY!
  186.  *
  187.  *      The hook is called as follows:
  188.  *
  189.  *              rc = hookFunc( REG(A0) struct Hook         *hook,
  190.  *                             REG(A2) Object              *image_object,
  191.  *                             REG(A1) struct FrameDrawMsg *fdraw );
  192.  */
  193. #define FRM_RENDER              (1L) /* Render yourself           */
  194.  
  195. struct FrameDrawMsg {
  196.         ULONG             fdm_MethodID;   /* FRM_RENDER                   */
  197.         struct RastPort  *fdm_RPort;      /* RastPort ready for rendering */
  198.         struct DrawInfo  *fdm_DrawInfo;   /* All you need to render       */
  199.         struct Rectangle *fdm_Bounds;     /* Rendering bounds.            */
  200.         UWORD             fdm_State;      /* See "intuition/imageclass.h" */
  201. };
  202.  
  203. /*
  204.  *      FRM_THICKNESS:
  205.  *
  206.  *      The message packet sent to the FRM_Custom hook.
  207.  *
  208.  *      The hook is called as follows:
  209.  *
  210.  *      rc = hookFunc( REG(A0) struct Hook              *hook,
  211.  *                     REG(A2) Object                   *image_object,
  212.  *                     REG(A1) struct ThicknessMsg      *thick );
  213.  */
  214. #define FRM_THICKNESS           (2L) /* Give the frame thickness. */
  215.  
  216. struct ThicknessMsg {
  217.         ULONG            tm_MethodID;     /* FRM_THICKNESS                */
  218.         struct {
  219.                 UBYTE   *Horizontal;      /* Storage for horizontal       */
  220.                 UBYTE   *Vertical;        /* Storage for vertical         */
  221.         }                tm_Thickness;
  222.         BOOL             tm_Thin;         /* Added in V38!                */
  223. };
  224.  
  225. /* Possible hook return codes. */
  226. #define FRC_OK                  (0L) /* OK            */
  227. #define FRC_UNKNOWN             (1L) /* Unknow method */
  228.  
  229. /*****************************************************************************
  230.  *
  231.  *      "labelclass" - BOOPSI labeling image.
  232.  */
  233. #define LAB_TextAttr                    (BGUI_TB+81)    /* ISG-- */
  234. #define LAB_Style                       (BGUI_TB+82)    /* ISG-- */
  235. #define LAB_Underscore                  (BGUI_TB+83)    /* ISG-- */
  236. #define LAB_Place                       (BGUI_TB+84)    /* ISG-- */
  237. #define LAB_Label                       (BGUI_TB+85)    /* ISG-- */
  238. #define LAB_Flags                       (BGUI_TB+86)    /* ISG-- */
  239. #define LAB_Highlight                   (BGUI_TB+87)    /* ISG-- */
  240. #define LAB_HighUScore                  (BGUI_TB+88)    /* ISG-- */
  241.  
  242. /* BGUI_TB+89 through BGUI_TB+160 reserved */
  243.  
  244. /* Flags */
  245. #define LABF_HIGHLIGHT          (1<<0) /* Highlight label        */
  246. #define LABF_HIGH_USCORE        (1<<1) /* Highlight underscoring */
  247.  
  248. /* Label placement */
  249. #define PLACE_IN                (0L)
  250. #define PLACE_LEFT              (1L)
  251. #define PLACE_RIGHT             (2L)
  252. #define PLACE_ABOVE             (3L)
  253. #define PLACE_BELOW             (4L)
  254.  
  255. /* New methods */
  256. /*
  257.  *      The IM_EXTENT method is used to find out how many
  258.  *      pixels the label extents the releative hitbox in
  259.  *      either direction. Normally this method is called
  260.  *      by the baseclass.
  261.  */
  262. #define IM_EXTENT                       (BGUI_MB+1)
  263.  
  264. struct impExtent {
  265.         ULONG                   MethodID;       /* IM_EXTENT                */
  266.         struct RastPort        *impe_RPort;     /* RastPort                 */
  267.         struct IBox            *impe_Extent;    /* Storage for extentions.  */
  268.         struct {
  269.                 UWORD          *Width;          /* Storage width in pixels  */
  270.                 UWORD          *Height;         /* Storage height in pixels */
  271.         }                       impe_LabelSize;
  272.         UWORD                   impe_Flags;     /* See below.               */
  273. };
  274.  
  275. #define EXTF_MAXIMUM            (1<<0) /* Request maximum extensions. */
  276.  
  277. /* BGUI_MB+2 through BGUI_MB+40 reserved */
  278.  
  279. /*****************************************************************************
  280.  *
  281.  *      "vectorclass" - BOOPSI scalable vector image.
  282.  *
  283.  *      Based on an idea found in the ObjectiveGadTools.library
  284.  *      by Davide Massarenti.
  285.  */
  286. #define VIT_VectorArray                 (BGUI_TB+161)   /* ISG-- */
  287. #define VIT_BuiltIn                     (BGUI_TB+162)   /* ISG-- */
  288. #define VIT_Pen                         (BGUI_TB+163)   /* ISG-- */
  289. #define VIT_DriPen                      (BGUI_TB+164)   /* ISG-- */
  290.  
  291. /* BGUI_TB+165 through BGUI_TB+240 reserved. */
  292.  
  293. /*
  294.  *      Command structure which can contain
  295.  *      coordinates, data and command flags.
  296.  */
  297. struct VectorItem {
  298.         WORD                    vi_x;           /* X coordinate or data */
  299.         WORD                    vi_y;           /* Y coordinate         */
  300.         ULONG                   vi_Flags;       /* See below            */
  301. };
  302.  
  303. /* Flags */
  304. #define VIF_MOVE                (1<<0)  /* Move to vc_x, vc_y               */
  305. #define VIF_DRAW                (1<<1)  /* Draw to vc_x, vc_y               */
  306. #define VIF_AREASTART           (1<<2)  /* Start AreaFill at vc_x, vc_y     */
  307. #define VIF_AREAEND             (1<<3)  /* End AreaFill at vc_x, vc_y       */
  308. #define VIF_XRELRIGHT           (1<<4)  /* vc_x relative to right edge      */
  309. #define VIF_YRELBOTTOM          (1<<5)  /* vc_y relative to bottom edge     */
  310. #define VIF_SHADOWPEN           (1<<6)  /* switch to SHADOWPEN, Move/Draw   */
  311. #define VIF_SHINEPEN            (1<<7)  /* switch to SHINEPEN, Move/Draw    */
  312. #define VIF_FILLPEN             (1<<8)  /* switch to FILLPEN, Move/Draw     */
  313. #define VIF_TEXTPEN             (1<<9)  /* switch to TEXTPEN, Move/Draw     */
  314. #define VIF_COLOR               (1<<10) /* switch to color in vc_x          */
  315. #define VIF_LASTITEM            (1<<11) /* last element of the element list */
  316. #define VIF_SCALE               (1<<12) /* X & Y are design width & height  */
  317. #define VIF_DRIPEN              (1<<13) /* switch to dripen vc_x            */
  318. #define VIF_AOLPEN              (1<<14) /* set area outline pen vc_x        */
  319. #define VIF_AOLDRIPEN           (1<<15) /* set area outline dripen vc_x     */
  320. #define VIF_ENDOPEN             (1<<16) /* end area outline pen             */
  321.  
  322. /* Built-in images. */
  323. #define BUILTIN_GETPATH         (1L)
  324. #define BUILTIN_GETFILE         (2L)
  325. #define BUILTIN_CHECKMARK       (3L)
  326. #define BUILTIN_POPUP           (4L)
  327. #define BUILTIN_ARROW_UP        (5L)
  328. #define BUILTIN_ARROW_DOWN      (6L)
  329. #define BUILTIN_ARROW_LEFT      (7L)
  330. #define BUILTIN_ARROW_RIGHT     (8L)
  331.  
  332. /* Design width and heights of the built-in images. */
  333. #define GETPATH_WIDTH           20
  334. #define GETPATH_HEIGHT          14
  335. #define GETFILE_WIDTH           20
  336. #define GETFILE_HEIGHT          14
  337. #define CHECKMARK_WIDTH         26
  338. #define CHECKMARK_HEIGHT        11
  339. #define POPUP_WIDTH             15
  340. #define POPUP_HEIGHT            13
  341. #define ARROW_UP_WIDTH          16
  342. #define ARROW_UP_HEIGHT         9
  343. #define ARROW_DOWN_WIDTH        16
  344. #define ARROW_DOWN_HEIGHT       9
  345. #define ARROW_LEFT_WIDTH        10
  346. #define ARROW_LEFT_HEIGHT       12
  347. #define ARROW_RIGHT_WIDTH       10
  348. #define ARROW_RIGHT_HEIGHT      12
  349.  
  350. /*****************************************************************************
  351.  *
  352.  *      "baseclass" - BOOPSI base gadget.
  353.  *
  354.  *      This is a very important BGUI gadget class. All other gadget classes
  355.  *      are sub-classed from this class. It will handle stuff like online
  356.  *      help, notification, labels and frames etc. If you want to write a
  357.  *      gadget class for BGUI be sure to subclass it from this class. That
  358.  *      way your class will automatically inherit the same features.
  359.  */
  360. #define BT_HelpFile                     (BGUI_TB+241)   /* IS--- */
  361. #define BT_HelpNode                     (BGUI_TB+242)   /* IS--- */
  362. #define BT_HelpLine                     (BGUI_TB+243)   /* IS--- */
  363. #define BT_Inhibit                      (BGUI_TB+244)   /* PRIVATE! */
  364. #define BT_HitBox                       (BGUI_TB+245)   /* --G-- */
  365. #define BT_LabelObject                  (BGUI_TB+246)   /* -SG-- */
  366. #define BT_FrameObject                  (BGUI_TB+247)   /* -SG-- */
  367. #define BT_TextAttr                     (BGUI_TB+248)   /* -S--- */
  368. #define BT_NoRecessed                   (BGUI_TB+249)   /* -S--- */
  369. #define BT_LabelClick                   (BGUI_TB+250)   /* IS--- */
  370. #define BT_HelpText                     (BGUI_TB+251)   /* IS--- */
  371.  
  372. /* BGUI_TB+252 through BGUI_TB+320 reserved. */
  373.  
  374. /* New methods */
  375. #define BASE_ADDMAP                     (BGUI_MB+41)
  376.  
  377. /* Add an object to the maplist notification list. */
  378. struct bmAddMap {
  379.         ULONG                   MethodID;
  380.         Object                 *bam_Object;
  381.         struct TagItem         *bam_MapList;
  382. };
  383.  
  384. #define BASE_ADDCONDITIONAL             (BGUI_MB+42)
  385.  
  386. /* Add an object to the conditional notification list. */
  387. struct bmAddConditional {
  388.         ULONG                   MethodID;
  389.         Object                 *bac_Object;
  390.         struct TagItem          bac_Condition;
  391.         struct TagItem          bac_TRUE;
  392.         struct TagItem          bac_FALSE;
  393. };
  394.  
  395. #define BASE_ADDMETHOD                  (BGUI_MB+43)
  396.  
  397. /* Add an object to the method notification list. */
  398. struct bmAddMethod {
  399.         ULONG                   MethodID;
  400.         Object                 *bam_Object;
  401.         ULONG                   bam_Flags;
  402.         ULONG                   bam_Size;
  403.         ULONG                   bam_MethodID;
  404. };
  405.  
  406. #define BAMF_NO_GINFO           (1<<0)  /* Do not send GadgetInfo. */
  407. #define BAMF_NO_INTERIM         (1<<1)  /* Skip interim messages.  */
  408.  
  409. #define BASE_REMMAP                     (BGUI_MB+44)
  410. #define BASE_REMCONDITIONAL             (BGUI_MB+45)
  411. #define BASE_REMMETHOD                  (BGUI_MB+46)
  412.  
  413. /* Remove an object from a notification list. */
  414. struct bmRemove {
  415.         ULONG                   MethodID;
  416.         Object                 *bar_Object;
  417. };
  418.  
  419. #define BASE_SHOWHELP                   (BGUI_MB+47)
  420.  
  421. /* Show attached online-help. */
  422. struct bmShowHelp {
  423.         ULONG                   MethodID;
  424.         struct Window          *bsh_Window;
  425.         struct Requester       *bsh_Requester;
  426.         struct {
  427.                 WORD            X;
  428.                 WORD            Y;
  429.         }                       bsh_Mouse;
  430. };
  431.  
  432. #define BMHELP_OK               (0L)    /* OK, no problems.           */
  433. #define BMHELP_NOT_ME           (1L)    /* Mouse not over the object. */
  434. #define BMHELP_FAILURE          (2L)    /* Showing failed.            */
  435.  
  436. /*
  437.  *      The following three methods are used internally to
  438.  *      perform infinite-loop checking. Do not use them.
  439.  */
  440. #define BASE_SETLOOP                    (BGUI_MB+48)
  441. #define BASE_CLEARLOOP                  (BGUI_MB+49)
  442. #define BASE_CHECKLOOP                  (BGUI_MB+50)
  443.  
  444. /* PRIVATE! Hands off! */
  445. #define BASE_LEFTEXT                    (BGUI_MB+51)
  446.  
  447. struct bmLeftExt {
  448.         ULONG                   MethodID;
  449.         struct RastPort        *bmle_RPort;
  450.         UWORD                  *bmle_Extention;
  451. };
  452.  
  453. #define BASE_ADDHOOK                    (BGUI_MB+52)
  454.  
  455. /* Add a hook to the hook-notification list. */
  456. struct bmAddHook {
  457.         ULONG                   MethodID;
  458.         struct Hook            *bah_Hook;
  459. };
  460.  
  461. /* Remove a hook from the hook-notification list. */
  462. #define BASE_REMHOOK                    (BGUI_MB+53)
  463.  
  464. /* BGUI_MB+54 through BGUI_MB+80 reserved. */
  465.  
  466. /*****************************************************************************
  467.  *
  468.  *      "groupclass" - BOOPSI group gadget.
  469.  *
  470.  *      This class is the actual bgui.library layout engine. It will layout
  471.  *      all members in a specific area. Two group types are available,
  472.  *      horizontal and vertical groups.
  473.  */
  474. #define GROUP_Style                     (BGUI_TB+321)   /* I---- */
  475. #define GROUP_Spacing                   (BGUI_TB+322)   /* I---- */
  476. #define GROUP_HorizOffset               (BGUI_TB+323)   /* I---- */
  477. #define GROUP_VertOffset                (BGUI_TB+324)   /* I---- */
  478. #define GROUP_LeftOffset                (BGUI_TB+325)   /* I---- */
  479. #define GROUP_TopOffset                 (BGUI_TB+326)   /* I---- */
  480. #define GROUP_RightOffset               (BGUI_TB+327)   /* I---- */
  481. #define GROUP_BottomOffset              (BGUI_TB+328)   /* I---- */
  482. #define GROUP_Member                    (BGUI_TB+329)   /* I---- */
  483. #define GROUP_SpaceObject               (BGUI_TB+330)   /* I---- */
  484. #define GROUP_BackFill                  (BGUI_TB+331)   /* I---- */
  485. #define GROUP_EqualWidth                (BGUI_TB+332)   /* I---- */
  486. #define GROUP_EqualHeight               (BGUI_TB+333)   /* I---- */
  487. #define GROUP_Inverted                  (BGUI_TB+334)   /* I---- */
  488.  
  489. /* BGUI_TB+335 through BGUI_TB+380 reserved. */
  490.  
  491. /* Object layout attributes. */
  492. #define LGO_FixWidth                    (BGUI_TB+381)
  493. #define LGO_FixHeight                   (BGUI_TB+382)
  494. #define LGO_Weight                      (BGUI_TB+383)
  495. #define LGO_FixMinWidth                 (BGUI_TB+384)
  496. #define LGO_FixMinHeight                (BGUI_TB+385)
  497. #define LGO_Align                       (BGUI_TB+386)
  498. #define LGO_NoAlign                     (BGUI_TB+387)                /* V38 */
  499.  
  500. /* BGUI_TB+388 through BGUI_TB+400 reserved. */
  501.  
  502. /* Default object weight. */
  503. #define DEFAULT_WEIGHT                  (50L)
  504.  
  505. /* Group styles. */
  506. #define GRSTYLE_HORIZONTAL              (0L)
  507. #define GRSTYLE_VERTICAL                (1L)
  508.  
  509. /* New methods. */
  510. #define GRM_ADDMEMBER                   (BGUI_MB+81)
  511.  
  512. /* Add a member to the group. */
  513. struct grmAddMember {
  514.         ULONG                   MethodID;       /* GRM_ADDMEMBER            */
  515.         Object                 *grma_Member;    /* Object to add.           */
  516.         ULONG                   grma_Attr;      /* First of LGO attributes. */
  517. };
  518.  
  519. #define GRM_REMMEMBER                   (BGUI_MB+82)
  520.  
  521. /* Remove a member from the group. */
  522. struct grmRemMember {
  523.         ULONG                   MethodID;       /* GRM_REMMEMBER            */
  524.         Object                 *grmr_Member;    /* Object to remove.        */
  525. };
  526.  
  527. #define GRM_DIMENSIONS                  (BGUI_MB+83)
  528.  
  529. /* Ask an object it's dimensions information. */
  530. struct grmDimensions {
  531.         ULONG                   MethodID;       /* GRM_DIMENSIONS           */
  532.         struct GadgetInfo      *grmd_GInfo;     /* Can be NULL!             */
  533.         struct RastPort        *grmd_RPort;     /* Ready for calculations.  */
  534.         struct {
  535.                 UWORD          *Width;
  536.                 UWORD          *Height;
  537.         }                       grmd_MinSize;   /* Storage for dimensions.  */
  538.         ULONG                   grmd_Flags;     /* See below.               */
  539. };
  540.  
  541. /* Flags */
  542. #define GDIMF_NO_FRAME          (1<<0)  /* Don't take frame width/height
  543.                                            into consideration.              */
  544.  
  545. #define GRM_ADDSPACEMEMBER              (BGUI_MB+84)
  546.  
  547. /* Add a weight controlled spacing member. */
  548. struct grmAddSpaceMember {
  549.         ULONG                   MethodID;       /* GRM_ADDSPACEMEMBER       */
  550.         ULONG                   grms_Weight;    /* Object weight.           */
  551. };
  552.  
  553. #define GRM_INSERTMEMBER                (BGUI_MB+85)
  554.  
  555. /* Insert a member in the group. */
  556. struct grmInsertMember {
  557.         ULONG                   MethodID;       /* GRM_INSERTMEMBER         */
  558.         Object                 *grmi_Member;    /* Member to insert.        */
  559.         Object                 *grmi_Pred;      /* Insert after this member */
  560.         ULONG                   grmi_Attr;      /* First of LGO attributes. */
  561. };
  562.  
  563. /* BGUI_MB+86 through BGUI_MB+120 reserved. */
  564.  
  565. /*****************************************************************************
  566.  *
  567.  *      "buttonclass" - BOOPSI button gadget.
  568.  *
  569.  *      GadTools style button gadget.
  570.  *
  571.  *      GA_Selected has been made gettable (OM_GET) for toggle-select
  572.  *      buttons. (ISGNU)
  573.  */
  574. #define BUTTON_ScaleMinWidth            (BGUI_TB+401)   /* PRIVATE! */
  575. #define BUTTON_ScaleMinHeight           (BGUI_TB+402)   /* PRIVATE! */
  576. #define BUTTON_Image                    (BGUI_TB+403)   /* I---- */
  577. #define BUTTON_SelectedImage            (BGUI_TB+404)   /* I---- */
  578.  
  579. /* BGUI_TB+405 through BGUI_TB+480 reserved. */
  580. /* BGUI_MB+121 through BGUI_MB+160 reserved. */
  581.  
  582. /*****************************************************************************
  583.  *
  584.  *      "checkboxclass" - BOOPSI checkbox gadget.
  585.  *
  586.  *      GadTools style checkbox gadget.
  587.  *
  588.  *      GA_Selected has been made gettable (OM_GET). (ISGNU)
  589.  */
  590.  
  591. /* BGUI_TB+481 through BGUI_TB+560 reserved. */
  592. /* BGUI_MB+161 through BGUI_MB+200 reserved. */
  593.  
  594. /*****************************************************************************
  595.  *
  596.  *      "cycleclass" - BOOPSI cycle gadget.
  597.  *
  598.  *      GadTools style cycle gadget.
  599.  */
  600. #define CYC_Labels                      (BGUI_TB+561)   /* I---- */
  601. #define CYC_Active                      (BGUI_TB+562)   /* ISGNU */
  602. #define CYC_Popup                       (BGUI_TB+563)   /* I---- */
  603.  
  604. /* BGUI_TB+564 through BGUI_TB+640 reserved. */
  605. /* BGUI_MB+201 through BGUI_MB+240 reserved. */
  606.  
  607. /*****************************************************************************
  608.  *
  609.  *      "infoclass" - BOOPSI information gadget.
  610.  *
  611.  *      Text gadget which supports different colors, text styles and
  612.  *      text positioning.
  613.  */
  614. #define INFO_TextFormat                 (BGUI_TB+641)   /* IS--U */
  615. #define INFO_Args                       (BGUI_TB+642)   /* IS--U */
  616. #define INFO_MinLines                   (BGUI_TB+643)   /* I---- */
  617. #define INFO_FixTextWidth               (BGUI_TB+644)   /* I---- */
  618. #define INFO_HorizOffset                (BGUI_TB+645)   /* I---- */
  619. #define INFO_VertOffset                 (BGUI_TB+646)   /* I---- */
  620.  
  621. /* Command sequences. */
  622. #define ISEQ_B                          "\33b"  /* Bold          */
  623. #define ISEQ_I                          "\33i"  /* Italics       */
  624. #define ISEQ_U                          "\33u"  /* Underlined    */
  625. #define ISEQ_N                          "\33n"  /* Normal        */
  626. #define ISEQ_C                          "\33c"  /* Centered      */
  627. #define ISEQ_R                          "\33r"  /* Right         */
  628. #define ISEQ_L                          "\33l"  /* Left          */
  629. #define ISEQ_TEXT                       "\33d2" /* TEXTPEN       */
  630. #define ISEQ_SHINE                      "\33d3" /* SHINEPEN      */
  631. #define ISEQ_SHADOW                     "\33d4" /* SHADOWPEN     */
  632. #define ISEQ_FILL                       "\33d5" /* FILLPEN       */
  633. #define ISEQ_FILLTEXT                   "\33d6" /* FILLTEXTPEN   */
  634. #define ISEQ_HIGHLIGHT                  "\33d8" /* HIGHLIGHTPEN  */
  635.  
  636. /* BGUI_TB+645 through BGUI_TB+720 reserved. */
  637. /* BGUI_MB+241 through BGUI_MB+280 reserved. */
  638.  
  639. /*****************************************************************************
  640.  *
  641.  *      "listviewclass" - BOOPSI listview gadget.
  642.  *
  643.  *      GadTools style listview gadget.
  644.  */
  645. #define LISTV_ResourceHook              (BGUI_TB+721)   /* I---- */
  646. #define LISTV_DisplayHook               (BGUI_TB+722)   /* I---- */
  647. #define LISTV_CompareHook               (BGUI_TB+723)   /* I---- */
  648. #define LISTV_Top                       (BGUI_TB+724)   /* ISG-U */
  649. #define LISTV_ListFont                  (BGUI_TB+725)   /* I-G-- */
  650. #define LISTV_ReadOnly                  (BGUI_TB+726)   /* I---- */
  651. #define LISTV_MultiSelect               (BGUI_TB+727)   /* I---- */
  652. #define LISTV_EntryArray                (BGUI_TB+728)   /* I---- */
  653. #define LISTV_Select                    (BGUI_TB+729)   /* -S--U */
  654. #define LISTV_MakeVisible               (BGUI_TB+730)   /* -S--U */
  655. #define LISTV_Entry                     (BGUI_TB+731)   /* ---N- */
  656. #define LISTV_SortEntryArray            (BGUI_TB+732)   /* I---- */
  657. #define LISTV_EntryNumber               (BGUI_TB+733)   /* ---N- */
  658. #define LISTV_TitleHook                 (BGUI_TB+734)   /* I---- */
  659. #define LISTV_LastClicked               (BGUI_TB+735)   /* --G-- */
  660. #define LISTV_ThinFrames                (BGUI_TB+736)   /* I---- */
  661. #define LISTV_LastClickedNum            (BGUI_TB+737)   /* --G-- */  /* V38 */
  662. #define LISTV_NewPosition               (BGUI_TB+738)   /* ---N- */  /* V38 */
  663. #define LISTV_NumEntries                (BGUI_TB+739)   /* --G-- */  /* V38 */
  664. #define LISTV_MinEntriesShown           (BGUI_TB+740)   /* I---- */  /* V38 */
  665.  
  666. /* BGUI_TB+741 through BGUI_TB+800 reserved. */
  667.  
  668. /*
  669. **      LISTV_Select magic numbers.
  670. **/
  671. #define LISTV_Select_First              (-1L)                        /* V38 */
  672. #define LISTV_Select_Last               (-2L)                        /* V38 */
  673. #define LISTV_Select_Next               (-3L)                        /* V38 */
  674. #define LISTV_Select_Previous           (-4L)                        /* V38 */
  675. #define LISTV_Select_Top                (-5L)                        /* V38 */
  676. #define LISTV_Select_Page_Up            (-6L)                        /* V38 */
  677. #define LISTV_Select_Page_Down          (-7L)                        /* V38 */
  678.  
  679. /*
  680.  *      The LISTV_ResourceHook is called as follows:
  681.  *
  682.  *      rc = hookFunc( REG(A0) struct Hook              *hook,
  683.  *                     REG(A2) Object                   *lv_object,
  684.  *                     REG(A1) struct lvResource        *message );
  685.  */
  686. struct lvResource {
  687.         UWORD                   lvr_Command;
  688.         APTR                    lvr_Entry;
  689. };
  690.  
  691. /* LISTV_ResourceHook commands. */
  692. #define LVRC_MAKE               1       /* Build the entry. */
  693. #define LVRC_KILL               2       /* Kill the entry.  */
  694.  
  695. /*
  696.  *      The LISTV_DisplayHook and the LISTV_TitleHook are called as follows:
  697.  *
  698.  *      rc = hookFunc( REG(A0) struct Hook             *hook,
  699.  *                     REG(A2) Object                  *lv_object,
  700.  *                     REG(A1) struct lvRender         *message );
  701.  */
  702. struct lvRender {
  703.         struct RastPort        *lvr_RPort;      /* RastPort to render in.  */
  704.         struct DrawInfo        *lvr_DrawInfo;   /* All you need to render. */
  705.         struct Rectangle        lvr_Bounds;     /* Bounds to render in.    */
  706.         APTR                    lvr_Entry;      /* Entry to render.        */
  707.         UWORD                   lvr_State;      /* See below.              */
  708.         UWORD                   lvr_Flags;      /* None defined yet.       */
  709. };
  710.  
  711. /* Rendering states. */
  712. #define LVRS_NORMAL             0
  713. #define LVRS_SELECTED           1
  714. #define LVRS_NORMAL_DISABLED    2
  715. #define LVRS_SELECTED_DISABLED  3
  716.  
  717. /*
  718.  *      The LISTV_CompareHook is called as follows:
  719.  *
  720.  *      rc = hookFunc( REG(A0) struct Hook              *hook,
  721.  *                     REG(A2) Object                   *lv_object,
  722.  *                     REG(A1) struct lvCompare         *message );
  723.  */
  724. struct lvCompare {
  725.         APTR                    lvc_EntryA;     /* First entry.  */
  726.         APTR                    lvc_EntryB;     /* Second entry. */
  727. };
  728.  
  729. /* New Methods. */
  730. #define LVM_ADDENTRIES                  (BGUI_MB+281)
  731.  
  732. /* Add listview entries. */
  733. struct lvmAddEntries {
  734.         ULONG                   MethodID;       /* LVM_ADDENTRIES  */
  735.         struct GadgetInfo      *lvma_GInfo;     /* GadgetInfo      */
  736.         APTR                   *lvma_Entries;   /* Entries to add. */
  737.         ULONG                   lvma_How;       /* How to add it.  */
  738. };
  739.  
  740. /* Where to add the entries. */
  741. #define LVAP_HEAD               1
  742. #define LVAP_TAIL               2
  743. #define LVAP_SORTED             3
  744.  
  745. #define LVM_ADDSINGLE                   (BGUI_MB+282)
  746.  
  747. /* Add a single entry. */
  748. struct lvmAddSingle {
  749.         ULONG                   MethodID;       /* LVM_ADDSINGLE */
  750.         struct GadgetInfo      *lvma_GInfo;     /* GadgetInfo    */
  751.         APTR                    lvma_Entry;     /* Entry to add. */
  752.         ULONG                   lvma_How;       /* See above.    */
  753.         ULONG                   lvma_Flags;     /* See below.    */
  754. };
  755.  
  756. /* Flags. */
  757. #define LVASF_MAKEVISIBLE       (1<<0)  /* Make entry visible. */
  758. #define LVASF_SELECT            (1<<1)  /* Select entry.       */
  759.  
  760. /* Clear the entire list. ( Uses a lvmCommand structure as defined below.) */
  761. #define LVM_CLEAR                       (BGUI_MB+283)
  762.  
  763. #define LVM_FIRSTENTRY                  (BGUI_MB+284)
  764. #define LVM_LASTENTRY                   (BGUI_MB+285)
  765. #define LVM_NEXTENTRY                   (BGUI_MB+286)
  766. #define LVM_PREVENTRY                   (BGUI_MB+287)
  767.  
  768. /* Get an entry. */
  769. struct lvmGetEntry {
  770.         ULONG                   MethodID;       /* Any of the above. */
  771.         APTR                    lvmg_Previous;  /* Previous entry.   */
  772.         ULONG                   lvmg_Flags;     /* See below.        */
  773. };
  774.  
  775. #define LVGEF_SELECTED          (1<<0)  /* Get selected entries. */
  776.  
  777. #define LVM_REMENTRY                    (BGUI_MB+288)
  778.  
  779. /* Remove an entry. */
  780. struct lvmRemEntry {
  781.         ULONG                   MethodID;       /* LVM_REMENTRY      */
  782.         struct GadgetInfo      *lvmr_GInfo;     /* GadgetInfo        */
  783.         APTR                    lvmr_Entry;     /* Entry to remove.  */
  784. };
  785.  
  786. #define LVM_REFRESH                     (BGUI_MB+289)
  787. #define LVM_SORT                        (BGUI_MB+290)
  788. #define LVM_LOCKLIST                    (BGUI_MB+291)
  789. #define LVM_UNLOCKLIST                  (BGUI_MB+292)
  790.  
  791. /* Refresh/Sort list. */
  792. struct lvmCommand {
  793.         ULONG                   MethodID;       /* LVM_REFRESH       */
  794.         struct GadgetInfo      *lvmc_GInfo;     /* GadgetInfo        */
  795. };
  796.  
  797. #define LVM_MOVE                        (BGUI_MB+293) /* V38 */
  798.  
  799. /* Move an entry in the list. */
  800. struct lvmMove {
  801.         ULONG                   MethodID;       /* LVM_MOVE          */
  802.         struct GadgetInfo      *lvmm_GInfo;     /* GadgetInfo        */
  803.         APTR                    lvmm_Entry;     /* Entry to move     */
  804.         ULONG                   lvmm_Direction; /* See below         */
  805. };
  806.  
  807. /* Move directions. */
  808. #define LVMOVE_UP               0       /* Move entry up.            */
  809. #define LVMOVE_DOWN             1       /* Move entry down.          */
  810. #define LVMOVE_TOP              2       /* Move entry to the top.    */
  811. #define LVMOVE_BOTTOM           3       /* Move entry to the bottom. */
  812.  
  813. /* BGUI_MB+294 through BGUI_MB+320 reserved. */
  814.  
  815. /*****************************************************************************
  816.  *
  817.  *      "progressclass" - BOOPSI progression gadget.
  818.  *
  819.  *      Progression indicator fuel guage.
  820.  */
  821. #define PROGRESS_Min                    (BGUI_TB+801)   /* IS--- */
  822. #define PROGRESS_Max                    (BGUI_TB+802)   /* IS--- */
  823. #define PROGRESS_Done                   (BGUI_TB+803)   /* ISGNU */
  824. #define PROGRESS_Vertical               (BGUI_TB+804)   /* I---- */
  825. #define PROGRESS_Divisor                (BGUI_TB+805)   /* I---- */
  826.  
  827. /* BGUI_TB+806 through BGUI_TB+880 reserved. */
  828. /* BGUI_MB+321 through BGUI_MB+360 reserved. */
  829.  
  830. /*****************************************************************************
  831.  *
  832.  *      "propclass" - BOOPSI proportional gadget.
  833.  *
  834.  *      GadTools style scroller gadget.
  835.  */
  836. #define PGA_Arrows                      (BGUI_TB+881)   /* I---- */
  837. #define PGA_ArrowSize                   (BGUI_TB+882)   /* I---- */
  838. #define PGA_DontTarget                  (BGUI_TB+883)   /* PRIVATE! */
  839. #define PGA_ThinFrame                   (BGUI_TB+884)   /* I---- */
  840. #define PGA_XenFrame                    (BGUI_TB+885)   /* I---- */
  841.  
  842. /* BGUI_TB+886 through BGUI_TB+960 reserved. */
  843. /* BGUI_MB+361 through BGUI_MB+400 reserved. */
  844.  
  845. /*****************************************************************************
  846.  *
  847.  *      "stringclass" - BOOPSI string gadget.
  848.  *
  849.  *      GadTools style string/integer gadget.
  850.  */
  851. #define STRINGA_Tabbed                  (BGUI_TB+961)   /* PRIVATE! */
  852. #define STRINGA_ShiftTabbed             (BGUI_TB+962)   /* PRIVATE! */
  853.  
  854. /* BGUI_TB+963 through BGUI_TB+1040 reserved. */
  855. /* BGUI_MB+401 through BGUI_MB+440 reserved. */
  856.  
  857. /*****************************************************************************
  858.  *
  859.  *      RESERVED.
  860.  */
  861.  
  862. /* BGUI_TB+1041 through BGUI_TB+1120 reserved. */
  863. /* BGUI_MB+441 through BGUI_MB+480 reserved. */
  864.  
  865. /*****************************************************************************
  866.  *
  867.  *      "pageclass" - BOOPSI paging gadget.
  868.  *
  869.  *      Gadget to handle pages of gadgets.
  870.  */
  871. #define PAGE_Active                     (BGUI_TB+1121)  /* ISGNU */
  872. #define PAGE_Member                     (BGUI_TB+1122)  /* I---- */
  873. #define PAGE_NoBufferRP                 (BGUI_TB+1123)  /* I---- */
  874. #define PAGE_Inverted                   (BGUI_TB+1124)  /* I---- */
  875.  
  876. /* BGUI_TB+1125 through BGUI_TB+1200 reserved. */
  877. /* BGUI_MB+481 through BGUI_MB+520 reserved. */
  878.  
  879. /*****************************************************************************
  880.  *
  881.  *      "mxclass" - BOOPSI mx gadget.
  882.  *
  883.  *      GadTools style mx gadget.
  884.  */
  885. #define MX_Labels                       (BGUI_TB+1201)  /* I---- */
  886. #define MX_Active                       (BGUI_TB+1202)  /* ISGNU */
  887. #define MX_LabelPlace                   (BGUI_TB+1203)  /* I---- */
  888. #define MX_DisableButton                (BGUI_TB+1204)  /* IS--U */
  889. #define MX_EnableButton                 (BGUI_TB+1205)  /* IS--U */
  890. #define MX_TabsObject                   (BGUI_TB+1206)  /* I---- */
  891. #define MX_TabsTextAttr                 (BGUI_TB+1207)  /* I---- */
  892.  
  893. /* BGUI_TB+1208 through BGUI_TB+1280 reserved. */
  894. /* BGUI_MB+521 through BGUI_MB+560 reserved. */
  895.  
  896. /*****************************************************************************
  897.  *
  898.  *      "sliderclass" - BOOPSI slider gadget.
  899.  *
  900.  *      GadTools style slider gadget.
  901.  */
  902. #define SLIDER_Min                              (BGUI_TB+1281)  /* I---- */
  903. #define SLIDER_Max                              (BGUI_TB+1282)  /* I---- */
  904. #define SLIDER_Level                            (BGUI_TB+1283)  /* ISGNU */
  905. #define SLIDER_ThinFrame                        (BGUI_TB+1284)  /* I---- */
  906. #define SLIDER_XenFrame                         (BGUI_TB+1285)  /* I---- */
  907.  
  908. /* BGUI_TB+1286 through BGUI_TB+1360 reserved. */
  909. /* BGUI_MB+561 through BGUI_MB+600 reserved. */
  910.  
  911. /*****************************************************************************
  912.  *
  913.  *      "indicatorclass" - BOOPSI indicator gadget.
  914.  *
  915.  *      Textual level indicator gadget.
  916.  */
  917. #define INDIC_Min                       (BGUI_TB+1361)  /* I---- */
  918. #define INDIC_Max                       (BGUI_TB+1362)  /* I---- */
  919. #define INDIC_Level                     (BGUI_TB+1363)  /* IS--U */
  920. #define INDIC_FormatString              (BGUI_TB+1364)  /* I---- */
  921. #define INDIC_Justification             (BGUI_TB+1365)  /* I---- */
  922.  
  923. /* Justification */
  924. #define IDJ_LEFT                (0L)
  925. #define IDJ_CENTER              (1L)
  926. #define IDJ_RIGHT               (2L)
  927.  
  928. /* BGUI_TB+1366 through BGUI_TB+1440 reserved. */
  929.  
  930. /*****************************************************************************
  931.  *
  932.  *      "externalclass" - BGUI external class interface.
  933.  */
  934. #define EXT_Class                       (BGUI_TB+1441)  /* I---- */
  935. #define EXT_ClassID                     (BGUI_TB+1442)  /* I---- */
  936. #define EXT_MinWidth                    (BGUI_TB+1443)  /* I---- */
  937. #define EXT_MinHeight                   (BGUI_TB+1444)  /* I---- */
  938. #define EXT_TrackAttr                   (BGUI_TB+1445)  /* I---- */
  939. #define EXT_Object                      (BGUI_TB+1446)  /* --G-- */
  940. #define EXT_NoRebuild                   (BGUI_TB+1447)  /* I---- */
  941.  
  942. /* BGUI_TB+1448 through BGUI_TB+1500 reserved. */
  943.  
  944. /*****************************************************************************
  945.  *
  946.  *      "separatorclass" - BOOPSI separator class.
  947.  */
  948. #define SEP_Horiz                       (BGUI_TB+1501)  /* I---- */
  949. #define SEP_Title                       (BGUI_TB+1502)  /* I---- */
  950. #define SEP_Thin                        (BGUI_TB+1503)  /* I---- */
  951. #define SEP_Highlight                   (BGUI_TB+1504)  /* I---- */
  952. #define SEP_CenterTitle                 (BGUI_TB+1505)  /* I---- */
  953.  
  954. /* BGUI_TB+1506 through BGUI_TB+1760 reserved. */
  955.  
  956. /*****************************************************************************
  957.  *
  958.  *      "windowclass" - BOOPSI window class.
  959.  *
  960.  *      This class creates and maintains an intuition window.
  961.  */
  962. #define WINDOW_Position                 (BGUI_TB+1761)  /* I---- */
  963. #define WINDOW_ScaleWidth               (BGUI_TB+1762)  /* I---- */
  964. #define WINDOW_ScaleHeight              (BGUI_TB+1763)  /* I---- */
  965. #define WINDOW_LockWidth                (BGUI_TB+1764)  /* I---- */
  966. #define WINDOW_LockHeight               (BGUI_TB+1765)  /* I---- */
  967. #define WINDOW_PosRelBox                (BGUI_TB+1766)  /* I---- */
  968. #define WINDOW_Bounds                   (BGUI_TB+1767)  /* ISG-- */
  969. /* BGUI_TB+1768 through BGUI_TB+1670 reserved. */
  970. #define WINDOW_DragBar                  (BGUI_TB+1771)  /* I---- */
  971. #define WINDOW_SizeGadget               (BGUI_TB+1772)  /* I---- */
  972. #define WINDOW_CloseGadget              (BGUI_TB+1773)  /* I---- */
  973. #define WINDOW_DepthGadget              (BGUI_TB+1774)  /* I---- */
  974. #define WINDOW_SizeBottom               (BGUI_TB+1775)  /* I---- */
  975. #define WINDOW_SizeRight                (BGUI_TB+1776)  /* I---- */
  976. #define WINDOW_Activate                 (BGUI_TB+1777)  /* I---- */
  977. #define WINDOW_RMBTrap                  (BGUI_TB+1778)  /* I---- */
  978. #define WINDOW_SmartRefresh             (BGUI_TB+1779)  /* I---- */
  979. #define WINDOW_ReportMouse              (BGUI_TB+1780)  /* I---- */
  980. /* BGUI_TB+1781 through BGUI_TB+1790 reserved. */
  981. #define WINDOW_IDCMP                    (BGUI_TB+1791)  /* I---- */
  982. #define WINDOW_SharedPort               (BGUI_TB+1792)  /* I---- */
  983. #define WINDOW_Title                    (BGUI_TB+1793)  /* IS--U */
  984. #define WINDOW_ScreenTitle              (BGUI_TB+1794)  /* IS--U */
  985. #define WINDOW_MenuStrip                (BGUI_TB+1795)  /* I-G-- */
  986. #define WINDOW_MasterGroup              (BGUI_TB+1796)  /* I---- */
  987. #define WINDOW_Screen                   (BGUI_TB+1797)  /* IS--- */
  988. #define WINDOW_PubScreenName            (BGUI_TB+1798)  /* IS--- */
  989. #define WINDOW_UserPort                 (BGUI_TB+1799)  /* --G-- */
  990. #define WINDOW_SigMask                  (BGUI_TB+1800)  /* --G-- */
  991. #define WINDOW_IDCMPHook                (BGUI_TB+1801)  /* I---- */
  992. #define WINDOW_VerifyHook               (BGUI_TB+1802)  /* I---- */
  993. #define WINDOW_IDCMPHookBits            (BGUI_TB+1803)  /* I---- */
  994. #define WINDOW_VerifyHookBits           (BGUI_TB+1804)  /* I---- */
  995. #define WINDOW_Font                     (BGUI_TB+1805)  /* I---- */
  996. #define WINDOW_FallBackFont             (BGUI_TB+1806)  /* I---- */
  997. #define WINDOW_HelpFile                 (BGUI_TB+1807)  /* IS--- */
  998. #define WINDOW_HelpNode                 (BGUI_TB+1808)  /* IS--- */
  999. #define WINDOW_HelpLine                 (BGUI_TB+1809)  /* IS--- */
  1000. #define WINDOW_AppWindow                (BGUI_TB+1810)  /* I---- */
  1001. #define WINDOW_AppMask                  (BGUI_TB+1811)  /* --G-- */
  1002. #define WINDOW_UniqueID                 (BGUI_TB+1812)  /* I---- */
  1003. #define WINDOW_Window                   (BGUI_TB+1813)  /* --G-- */
  1004. #define WINDOW_HelpText                 (BGUI_TB+1814)  /* IS--- */
  1005. #define WINDOW_NoBufferRP               (BGUI_TB+1815)  /* I---- */
  1006. #define WINDOW_AutoAspect               (BGUI_TB+1816)  /* I---- */
  1007.  
  1008. /* BGUI_TB+1817 through BGUI_TB+1860 reserved. */
  1009.  
  1010. /* Possible window positions. */
  1011. #define POS_CENTERSCREEN        (0L)    /* Center on the screen             */
  1012. #define POS_CENTERMOUSE         (1L)    /* Center under the mouse           */
  1013. #define POS_TOPLEFT             (2L)    /* Top-left of the screen           */
  1014.  
  1015. /* New methods */
  1016.  
  1017. #define WM_OPEN         (BGUI_MB+601)   /* Open the window                  */
  1018. #define WM_CLOSE        (BGUI_MB+602)   /* Close the window                 */
  1019. #define WM_SLEEP        (BGUI_MB+603)   /* Put the window to sleep          */
  1020. #define WM_WAKEUP       (BGUI_MB+604)   /* Wake the window up               */
  1021. #define WM_HANDLEIDCMP  (BGUI_MB+605)   /* Call the IDCMP handler           */
  1022.  
  1023. /* Pre-defined WM_HANDLEIDCMP return codes. */
  1024. #define WMHI_CLOSEWINDOW        (1<<16) /* The close gadget was clicked     */
  1025. #define WMHI_NOMORE             (2<<16) /* No more messages                 */
  1026. #define WMHI_INACTIVE           (3<<16) /* The window was de-activated      */
  1027. #define WMHI_ACTIVE             (4<<16) /* The window was activated         */
  1028. #define WMHI_IGNORE             (~0L)   /* Like it say's: ignore            */
  1029.  
  1030. #define WM_GADGETKEY                    (BGUI_MB+606)
  1031.  
  1032. /* Add a hotkey to a gadget. */
  1033. struct wmGadgetKey {
  1034.         ULONG              MethodID;       /* WM_GADGETKEY                  */
  1035.         struct Requester  *wmgk_Requester; /* When used in a requester      */
  1036.         Object            *wmgk_Object;    /* Object to activate            */
  1037.         STRPTR             wmgk_Key;       /* Key that triggers activ.      */
  1038. };
  1039.  
  1040. #define WM_KEYACTIVE                    (BGUI_MB+607)
  1041. #define WM_KEYINPUT                     (BGUI_MB+608)
  1042.  
  1043. /* Send with the WM_KEYACTIVE and WM_KEYINPUT methods. */
  1044. struct wmKeyInput {
  1045.         ULONG              MethodID;     /* WM_KEYACTIVE/WM_KEYINPUT        */
  1046.         struct GadgetInfo *wmki_GInfo;   /* GadgetInfo                      */
  1047.         struct InputEvent *wmki_IEvent;  /* Input event                     */
  1048.         ULONG             *wmki_ID;      /* Storage for the object ID       */
  1049.         STRPTR             wmki_Key;     /* Key that triggered activation.  */
  1050. };
  1051.  
  1052. /* Possible WM_KEYACTIVE and WM_KEYINPUT return codes. */
  1053. #define WMKF_MEACTIVE           (0L)     /* Object went active.             */
  1054. #define WMKF_CANCEL             (1<<0)   /* Key activation canceled.        */
  1055. #define WMKF_VERIFY             (1<<1)   /* Key activation confirmed        */
  1056. #define WMKF_ACTIVATE           (1<<2)   /* ActivateGadget() object         */
  1057.  
  1058. #define WM_KEYINACTIVE                  (BGUI_MB+609)
  1059.  
  1060. /* De-activate a key session. */
  1061. struct wmKeyInActive {
  1062.         ULONG              MethodID;    /* WM_KEYINACTIVE                   */
  1063.         struct GadgetInfo *wmkia_GInfo; /* GadgetInfo                       */
  1064. };
  1065.  
  1066. #define WM_DISABLEMENU                  (BGUI_MB+610)
  1067. #define WM_CHECKITEM                    (BGUI_MB+611)
  1068.  
  1069. /* Disable/Enable a menu or Set/Clear a checkit item. */
  1070. struct wmMenuAction {
  1071.         ULONG              MethodID;    /* WM_DISABLEMENU/WM_CHECKITEM      */
  1072.         ULONG              wmma_MenuID; /* Menu it's ID                     */
  1073.         ULONG              wmma_Set;    /* TRUE = set, FALSE = clear        */
  1074. };
  1075.  
  1076. #define WM_MENUDISABLED                 (BGUI_MB+612)
  1077. #define WM_ITEMCHECKED                  (BGUI_MB+613)
  1078.  
  1079. struct wmMenuQuery {
  1080.         ULONG              MethodID;    /* WM_MENUDISABLED/WM_ITEMCHECKED   */
  1081.         ULONG              wmmq_MenuID; /* Menu it's ID                     */
  1082. };
  1083.  
  1084. #define WM_TABCYCLE_ORDER               (BGUI_MB+614)
  1085.  
  1086. /* Set the tab-cycling order. */
  1087. struct wmTabCycleOrder {
  1088.         ULONG              MethodID;    /* WM_TABCYCLE_ORDER                */
  1089.         Object            *wtco_Object1;
  1090.         /* Object         *wtco_Object2; */
  1091.         /* ...  */
  1092.         /* NULL */
  1093. };
  1094.  
  1095. /* Obtain the app message. */
  1096. #define WM_GETAPPMSG                    (BGUI_MB+615)
  1097.  
  1098. #define WM_ADDUPDATE                    (BGUI_MB+616)
  1099.  
  1100. /* Add object to the update notification list. */
  1101. struct wmAddUpdate {
  1102.         ULONG              MethodID;            /* WM_ADDUPDATE             */
  1103.         ULONG              wmau_SourceID;       /* ID of source object.     */
  1104.         Object            *wmau_Target;         /* Target object.           */
  1105.         struct TagItem    *wmau_MapList;        /* Attribute map-list.      */
  1106. };
  1107.  
  1108. #define WM_REPORT_ID                    (BGUI_MB+617) /* V38 */
  1109.  
  1110. /* Report a return code from a IDCMP/Verify hook. */
  1111. struct wmReportID {
  1112.         ULONG              MethodID;            /* WM_REPORT_ID             */
  1113.         ULONG              wmri_ID;             /* ID to report.            */
  1114.         ULONG              wmri_Flags;          /* See below.               */
  1115. };
  1116.  
  1117. /* Flags */
  1118. #define WMRIF_DOUBLE_CLICK      (1<<0)          /* Simulate double-click.   */
  1119.  
  1120. /* BGUI_MB+618 through BGUI_MB+660 reserved. */
  1121.  
  1122. /*****************************************************************************
  1123.  *
  1124.  *      "commodityclass" - BOOPSI commodity class.
  1125.  */
  1126. #define COMM_Name                       (BGUI_TB+1861)  /* I---- */
  1127. #define COMM_Title                      (BGUI_TB+1862)  /* I---- */
  1128. #define COMM_Description                (BGUI_TB+1863)  /* I---- */
  1129. #define COMM_Unique                     (BGUI_TB+1864)  /* I---- */
  1130. #define COMM_Notify                     (BGUI_TB+1865)  /* I---- */
  1131. #define COMM_ShowHide                   (BGUI_TB+1866)  /* I---- */
  1132. #define COMM_Priority                   (BGUI_TB+1867)  /* I---- */
  1133. #define COMM_SigMask                    (BGUI_TB+1868)  /* --G-- */
  1134. #define COMM_ErrorCode                  (BGUI_TB+1869)  /* --G-- */
  1135.  
  1136. /* BGUI_TB+1870 through BGUI_TB+1940 reserved. */
  1137.  
  1138. /* New Methods. */
  1139.  
  1140. #define CM_ADDHOTKEY                    (BGUI_MB+661)
  1141.  
  1142. /* Add a hot-key to the broker. */
  1143. struct cmAddHotkey {
  1144.         ULONG           MethodID;               /* CM_ADDHOTKEY             */
  1145.         STRPTR          cah_InputDescription;   /* Key input description.   */
  1146.         ULONG           cah_KeyID;              /* Key command ID.          */
  1147.         ULONG           cah_Flags;              /* See below.               */
  1148. };
  1149.  
  1150. /* Flags. */
  1151. #define CAHF_DISABLED   (1<<0)  /* The key is added but won't work.         */
  1152.  
  1153. #define CM_REMHOTKEY                    (BGUI_MB+662) /* Remove a key.      */
  1154. #define CM_DISABLEHOTKEY                (BGUI_MB+663) /* Disable a key.     */
  1155. #define CM_ENABLEHOTKEY                 (BGUI_MB+664) /* Enable a key.      */
  1156.  
  1157. /* Do a key command. */
  1158. struct cmDoKeyCommand {
  1159.         ULONG           MethodID;       /* See above.                       */
  1160.         ULONG           cdkc_KeyID;     /* ID of the key.                   */
  1161. };
  1162.  
  1163. #define CM_ENABLEBROKER                 (BGUI_MB+665) /* Enable broker.     */
  1164. #define CM_DISABLEBROKER                (BGUI_MB+666) /* Disable broker.    */
  1165.  
  1166. #define CM_MSGINFO                      (BGUI_MB+667)
  1167.  
  1168. /* Obtain info from a CxMsg. */
  1169. struct cmMsgInfo {
  1170.         ULONG           MethodID;       /* CM_MSGINFO                       */
  1171.         struct {
  1172.                 ULONG  *Type;           /* Storage for CxMsgType() result.  */
  1173.                 ULONG  *ID;             /* Storage for CxMsgID() result.    */
  1174.                 ULONG  *Data;           /* Storage for CxMsgData() result.  */
  1175.         }               cmi_Info;
  1176. };
  1177.  
  1178. /* Possible CM_MSGINFO return codes. */
  1179. #define CMMI_NOMORE             (~0L)   /* No more messages.                */
  1180.  
  1181. /* BGUI_MB+668 through BGUI_MB+700 reserved. */
  1182.  
  1183. /*
  1184.  *      CM_ADDHOTKEY error codes obtainable using
  1185.  *      the COMM_ErrorCode attribute.
  1186.  */
  1187. #define CMERR_OK                (0L)    /* OK. No problems.                 */
  1188. #define CMERR_NO_MEMORY         (1L)    /* Out of memory.                   */
  1189. #define CMERR_KEYID_IN_USE      (2L)    /* Key ID already used.             */
  1190. #define CMERR_KEY_CREATION      (3L)    /* Key creation failure.            */
  1191. #define CMERR_CXOBJERROR        (4L)    /* CxObjError() reported failure.   */
  1192.  
  1193. /*****************************************************************************
  1194.  *
  1195.  *      "filereqclass.c" - BOOPSI Asl filerequester class.
  1196.  */
  1197. #define FRQ_Drawer                      (BGUI_TB+1941)  /* --G-- */
  1198. #define FRQ_File                        (BGUI_TB+1942)  /* --G-- */
  1199. #define FRQ_Pattern                     (BGUI_TB+1943)  /* --G-- */
  1200. #define FRQ_Path                        (BGUI_TB+1944)  /* --G-- */
  1201. #define FRQ_Left                        (BGUI_TB+1945)  /* --G-- */
  1202. #define FRQ_Top                         (BGUI_TB+1946)  /* --G-- */
  1203. #define FRQ_Width                       (BGUI_TB+1947)  /* --G-- */
  1204. #define FRQ_Height                      (BGUI_TB+1948)  /* --G-- */
  1205. /*
  1206.  *      In addition to the above defined attributes are all
  1207.  *      ASL filerequester attributes ISG-U.
  1208.  */
  1209.  
  1210. /* BGUI_TB+1949 through BGUI_TB+2020 reserved. */
  1211.  
  1212. /*
  1213.  *      Error codes which the SetAttrs() and DoMethod()
  1214.  *      call's can return.
  1215.  */
  1216. #define FRQ_OK                  (0L)    /* OK. No problems.                 */
  1217. #define FRQ_CANCEL              (1L)    /* The requester was cancelled.     */
  1218. #define FRQ_ERROR_NO_MEM        (2L)    /* Out of memory.                   */
  1219. #define FRQ_ERROR_NO_FREQ       (3L)    /* Unable to allocate a requester.  */
  1220.  
  1221. /* New Methods */
  1222.  
  1223. #define FRM_DOREQUEST                   (BGUI_MB+701)   /* Show Requester.  */
  1224.  
  1225. /* BGUI_MB+702 through BGUI_MB+740 reserved. */
  1226.  
  1227. #endif /* LIBRARIES_BGUI_H */
  1228.